package com.zw.a.basic.a12.demo08_serializable;

import com.itheima.pojo.Student;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

//案例: 演示对象的序列化操作.
/*
    结论: 记忆:
        1. ObjectOutputStream叫序列化流, ObjectInputStream叫: 发序列化流.
        2. 如果某个类想实现序列化或者反序列化操作, 则该类必须实现Serializable接口.
        3. Serializable接口中没有任何的方法和变量, 它就是一个标记接口.
           类似于你去超市买猪肉, 猪肉身上的 质检戳

    序列化解释:
        概述:
            序列化指的是把Java对象,写入到一个文件中.
        涉及到的流:
            ObjectOutputStream      序列化流.
        涉及到的方法
            public ObjectOutputStream(OutputStream os);

            ObjectOutputStream#writeObject(Object obj)      把对象写入到文件中.
 */
public class Demo01 {
    public static void main(String[] args) throws IOException {
        //需求1: 序列化操作.
        //1. 创建序列化流, 封装目的地文件.
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("day12/data/1.txt"));
        //2. 创建JavaBean对象.
        Student s = new Student("刘亦菲", 33);
        //3. 进行序列化操作.
        oos.writeObject(s);
        //4. 关流.
        oos.close();
    }
}
